<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "{{%error}}".
 *
 * @property string $time
 * @property string $msg
 * @property string $id
 */
class Error extends \yii\db\ActiveRecord
{
    
    /**
     * 普通错误
    */
    const Err_putong=0;
    /**
     * 中级错误
    */
    const Err_zhongji=1;
    /**
     * 严重错误
    */
    const Err_yanzhong=2;


    
    /**
     *  记录的错误信息
    */
    public static $msg='';

        /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%error}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['time'], 'integer'],
            [['msg'], 'string']
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'time' => '错误发生的时间',
            'msg' => '错误信息',
            'id' => 'ID',
            'type'=>'错误级别'
        ];
    }
    
    
      /**
     * 表示写入文件
    */
    const msg_file=1;

    public static function adderrormsg($msg,$msg_file=false){
        if(Yii::$app->user->isGuest){
            $msg.='**user:未登录';
        }else{
             $msg.='**user:已经登录#'.Yii::$app->user->id;
        }
        $model=new Error;
        $model->msg=$msg;
        $model->time=time();
        $model->save();
        
        if($msg_file===Error::msg_file){
          /*  $f=  fopen(Yii::app()->getRuntimePath().'/logfile.txt','a+');
            fwrite($f, $msg.'time:'.Fun::date(time())."\r\n");*/
        }
    }
    
    
    /**
     * 在程序中出错了
    */
   public function set_error_array($array){
       $msg=  self::$msg;
      // print_r($array);exit;
       
        foreach($array as $v){
            $msg.=$v[0];
        }
         
       self::$msg=$msg;
   }
    
   
   /**
    * 添加错误,如果设置为显示出错误,则中断程序
   */
  public static function addmsg($msg,$type=self::Err_putong,$show=false){
       $model=new Error;
       $model->time=time();
       $model->msg=$msg;
       $model->type=$type;
       $model->save();    
  }
}
